要注意的是,因為Go語言很新,比你我年紀都還小(應該吧?)
每次推新的版本時,很常出現實驗性的功能、套件。
例如:
v1.5
版本時推出Vendor
套件 來管理套件
v1.11
版本出現Go Modules(Go Mod)
方式來管理套件
所以在網路上尋找解答時,一定要注意該篇文章用的是哪個版本。
專案(Project)
可以由多個包(Package)
組成包(Package)
可以有多支程式(.go file)
包(Package)
底下的程式(.go file)
彼此全域變數及函式可以互見,就像在同一支程式裡一樣包(Package)
的名稱 為包所在的資料夾名稱
程式(.go fle)
只能屬於一個包(Package)
程式(.go fle)
可以有多個變數、函式(function)
程式(.go file)
的名稱 不一定要等同於資料夾或包(Package)
的名稱主程式(package main)
主程式(package main)
代表我們可以主動 go run 執行
這包程式package main
func main()
func main(){}
就是執行專案時程式的進入點簡單來說,
Project(專案) > Package(程式包) > .go file(程式檔) > Function(函式)一個子資料夾內的程式都是同一個Package
同一個Package都在同一個子資料夾內
同一個資料夾(Package)內的函式、結構及變數互通當然你不要這樣放(有些情況)也是可以,但是慣例、官方範例、各大套件都是這樣放
之前在學習其他程式語言階段,都是直接上網Google用法,搜尋結果出來中英文的教學都有,但當然有中文就看中文。
但在開始碰Go之後,用到的任何函式、Github上的套件、基本上就是看官方文件了,尤其README.md
一定要看,通常會有安裝步驟及套件基本用法。
因為等到有中文翻譯可能是兩三個月之後,而屆時的版本可能又有更動,
且網路上的教學不一定正確,官方的文件比較可靠(...官方文件也不一定百分之百正確,之前就有用過 程式碼更新、文檔或範例程式卻沒有一併更新的)
連官方文件都不一定可靠,那該怎麼辦?
別擔心,這種狀況少之又少,但100%可靠的是 直接Trace Source Code
,看套件程式怎麼寫、就怎麼套著用。
甚至有時候直接看程式碼、比落落長的文字敘述,表達的意思還要更佳流暢。
這也是推薦使用Goland IDE
的主要原因之一,對著程式碼的語法按下Command+左鍵
(或Ctrl+左鍵
)就能追蹤這個用法的來源程式哩。